﻿using System;

using SBPweb.RIA.Shared.Contracts.Events;

namespace SBPweb.RIA.Shared.Contracts.Components
{

    public interface IInitializable
    {

        #region Property accessors

        bool IsInitialized
        {
            get;
        }

        #endregion

        #region Events

        event EventHandler<CancelEventArgs> Initializing;

        event EventHandler Initialized;

        event EventHandler<CancelEventArgs> Terminating;

        event EventHandler Terminated;

        #endregion

        #region Methods

        void Initialize();

        void Terminate();

        #endregion

    }

}